#include "Thread.hpp"
#include <vector>
using namespace MyThread;
///////////////////////////////////////多线程///////////////////////////////////////////
int main()
{
    std::vector<Thread> threads;
    for (int i = 0; i < 5; i++)
    {
        Thread t([](){
        while(true) 
        {
            char buffer[64];
            pthread_getname_np(pthread_self(), buffer, sizeof(buffer)); //获取名字
            std::cout << buffer << "运行中..." << std::endl;
            sleep(1);
        } }); // 返回值为void,参数为空
        threads.emplace_back(t);
    }

    for (auto &t : threads)
    {
        t.Start();
    }
    
    sleep(3); //3秒后全部停止并回收
    for (auto &t : threads)
    {
        t.Stop();
    }
    for (auto &t : threads)
    {
        t.Join();
    }

    return 0;
}

///////////////////////////////////////单线程///////////////////////////////////////////
// int main()
// {
//     Thread t([]()
//              {
//         while(true)
//         {
//             char buffer[64];
//             pthread_getname_np(pthread_self(), buffer, sizeof(buffer)); //获取名字
//             std::cout << buffer << "运行中..." << std::endl;
//             sleep(1);
//         } }); // 返回值为void,参数为空

//     t.Start();
//     t.Detach(); // 设置分离状态
//     sleep(3);
//     t.Stop();
//     sleep(3);
//     t.Join();
//     sleep(3);
//     return 0;
// }
